@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ========================================
echo    Spring Boot 服务管理脚本
echo ========================================

:: 配置参数
set "JAR_PATH=D:/work/video.jar"
set "CONFIG_PATH=D:/work/application.yml"
set "SERVICE_NAME=video.jar"

echo 正在检查 %SERVICE_NAME% 服务状态...

:: 查找正在运行的jar进程
set "PID="
for /f "tokens=1-2 delims= " %%a in ('jps -l ^| findstr "%JAR_PATH%"') do (
    set "PID=%%a"
)

if defined PID (
    echo 检测到服务正在运行，进程ID: !PID!
    echo 正在停止服务...
    
    :: 优雅停止服务
    taskkill /PID !PID! /F
    if !errorlevel! equ 0 (
        echo 服务已成功停止
    ) else (
        echo 停止服务时出现错误
        exit /b 1
    )
    
    :: 等待进程完全退出
    timeout /t 3 /nobreak >nul
) else (
    echo 服务当前未运行
)

echo.
echo 正在启动服务...

:: 检查jar文件是否存在
if not exist "%JAR_PATH%" (
    echo 错误: 未找到jar文件: %JAR_PATH%
    exit /b 1
)

:: 检查配置文件是否存在
if not exist "%CONFIG_PATH%" (
    echo 警告: 未找到配置文件: %CONFIG_PATH%
)

:: 启动服务
echo 启动命令: java -jar "%JAR_PATH%" --spring.config.location="%CONFIG_PATH%"
java -jar "%JAR_PATH%" --spring.config.location="%CONFIG_PATH%"

:: 检查启动是否成功
if !errorlevel! equ 0 (
    echo 服务启动成功!
) else (
    echo 服务启动失败!
)

endlocal
pause